Clean Code (8-完结)

忘了发出来,现在补上

时间: 2016/5/6 星期五

今天阅读了本书的后半部分,有两点不同:

  1. 层次,前半部分是琐碎的细节,后半部分则基于前半部分但却站在更高的角度来讲怎样写代码。
  2. 后半部分还对前半部分进行了归纳总结,以实例的方式一点点地告诉你之前讲的那些规则是如何使用的。
    九、单元测试
    1. TDD定律
      在编写不能通过的单元测试前,不可编写生产代码
      只可编写刚好无法通过的单元测试,不能编译也算不通过
      只可编写刚好足以通过当前失败测试的生产代码
      —– 这三条写的有点绕,我的理解就是:要把测试代码当生产代码来写,测试也很重要
      2.五大规则(F.I.R.S.T)
      快速:就是代码质量要好,高效
      独立:不同测试之间应相互独立
      可重复:就是在各种环境中都可测试通过
      自足验证:测试不依赖手工操作来知晓是否通过
      及时:测试应在生产代码之前进行编写
      十、类
      主要注意一个点,类应短小,可通过以下两种方式达到此目的:
  3. 权责单一:一个类的权责不应太多,太多则需考虑拆成多个类了
  4. 高内聚:类的实体变量应尽可能少,类中方法尽可能多地使用到这些变量
    十一、系统
    1.系统构造与使用分开
    
    工厂:使用工厂方法自行决定何时创建实例,但是构造细节却在其他地方
    依赖注入:当A对B有依赖时,A中不负责B的实例化(这就是类的权责单一原则)
    2.本章的后半部分提到的AOP,AspectJ等内容都以Spring,EJB等框架为例,稀里糊涂    的,还不清楚作者要表达什么,暂时没有体会。
    
    十二、跌进
     跌进这一章提到的点不多
    1.运行所有的测试:为能方便测试,我们的生产代码也要足够短小,耦合度低
    2.重构:在写代码过程中要及时重构,保持代码的优雅
    3.不可重复:已有的代码要利用起来,消除重复
    4.表达力强:这应该是一个目标或是结果,做好前边的工作自然而然可以达到
    
    十三、并发编程
    1.为什么:它可以将“目的”和“时机”分离,进行解耦
    2.并发防御原则
    单一权责:主要关注一点,并发相关的代码应分离出来
     为此,三点建议:
      1).限制数据作用域
      2).使用数据副本:这不就是ThreadLocsal么~~
      3).线程应尽可能地独立
    3.学习已有类库:Java中的并发包之类
    
    okay,基本东西就是这些了,后边的章节就是一些实例代码。
Contents
|